Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

652
Views
No se puede ubicar la fábrica para [Aplicación\Modelos\Usuario] al ejecutar la prueba en laravel

Estoy tratando de probar mi aplicación usando pruebas en laravel. Pero tengo un error, cada vez que ejecuto la prueba usando la prueba artesanal de php, siempre dice Unable to locate factory for [App\Models\User] . No puedo entender por qué sucede esto.

aquí está mi código de prueba:

 <?php namespace Tests\Feature; use Tests\TestCase; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; class Fish extends TestCase { /** @test */ public function test_authenticated_users_can_access_home() { $user = factory(User::class)->create(); $this->actingAs($user); $response = $this->get('/home')->assertOk(); } }

y este es mi modelo:

 <?php namespace App\Models; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { use HasFactory, Notifiable; ...

fábrica de usuarios

 <?php namespace Database\Factories; use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Str; class UserFactory extends Factory { /** * The name of the factory's corresponding model. * * @var string */ protected $model = User::class; /** * Define the model's default state. * * @return array */ public function definition() { return [ 'name' => $this->faker->name(), 'email' => $this->faker->unique()->safeEmail(), 'email_verified_at' => now(), 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'remember_token' => Str::random(10), ]; } ... }

cualquier ayuda sería muy apreciada, gracias lo siento por mi mal inglés

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

De su clase UserFactory, asumo que está usando Laravel 8.

La nueva forma de llamar a las fábricas en Laravel 8 es

 $user = User::factory()->create();

en lugar de la vieja manera

 $user = factory(User::class)->create();

Creo que mezclaste la sintaxis de Laravel 8 y 7 en tu ProjectFactory. Recomendaría eliminar su ProjectFactory y volver a crearlo en Laravel 8 con el comando artesanal de PHP: php artisan make:factory ProjectFactory . Entonces llamarías a la fábrica así:

 $project = Project::factory()->create();

Asegúrese de que su modelo de Proyecto use hasFactory; rasgo para que esto funcione.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!